Dart _fe_analyzer_shared scanner CharSequenceReader
CharSequenceReader
实现了 CharacterReader 接口,它从一个字符序列中读取字符。
以下是它的主要属性和方法:
-
_sequence
:- 表示需要读取的字符序列。
String
类型
-
_stringLength
:- 表示
_sequence
的长度。 int
类型
- 表示
-
_charOffset
:- 表示下一个要读取的字符的索引。
int
类型
-
offset
:- 用于获取或设置当前的偏移量。
- 这是一个覆盖了
CharacterReader
接口的 getter 和 setter +1
、-1
逻辑:_charOffset
是表示下一个要读取的字符的索引- 所以当你获取
offset
时,实际上你得到的是最后一个已经读取的字符的索引,这就是为什么 getter 方法中要减去1
。 - 相反,当你设置
offset
时,你提供的是你想要读取的下一个字符的索引,所以 setter 方法中需要加上1
,以便_charOffset
可以正确地指向下一个要读取的字符。
-
advance()
:- 用于推进当前的位置,并返回新位置的字符。
- 如果已经读取了整个
_sequence
,那么返回-1
。
-
getContents()
:- 用于返回
_sequence
。
- 用于返回
-
getString(int start, int endDelta)
:- 用于返回
_sequence
的一个子串。 - 这个子串是从给定的
start
开始,到当前位置加上endDelta
的字符。
- 用于返回
-
peek()
:- 用于返回当前位置的字符,但不改变当前的位置。
- 如果已经读取了整个
_sequence
,那么返回-1
。
本文作者:Maeiee
本文链接:Dart _fe_analyzer_shared scanner CharSequenceReader
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!